Skip to content

Test for MNE-Tools actions - #13971

Merged
larsoner merged 159 commits into
mne-tools:mainfrom
tsbinns:test_tools
Aug 10, 2026
Merged

Test for MNE-Tools actions#13971
larsoner merged 159 commits into
mne-tools:mainfrom
tsbinns:test_tools

Conversation

@tsbinns

@tsbinns tsbinns commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Testing to get an idea of how the actions being implemented in MNE-Tools behave (mne-tools/mne-tools#20).

@tsbinns

tsbinns commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Have now tested here all the actions implemented so far in mne-tools, save the old env checking.

There are a couple differences between what happens currently and what the actions do, but only cosmetic, nothing that should affect the function. A summary of differences below:

Syncing dependencies to env yaml

  • Formatting of some specifiers/markers changes because the actions uses packaging's Request object to get str reprs, which has its own ordering logic. However, this is just a cosmetic thing, and it still functions as an env file.

Citation generation

  • Action switches to using pyyaml to format CITATION.CFF instead of manually constructing this. However, pyyaml's behaviour is to not indent lists, e.g.:
# `pyyaml` formatting
my-list:
- item

# current formatting
my-list:
  - item

AFAIK, there isn't a way to get pyyaml to add this indentation. Both are valid yaml formats, just a visual thing, but it does produce a big diff to what there is currently.

  • pyyaml also doesn't wrap multi-word strings in quotes, as is currently done, but this isn't required for the yaml to be valid.

  • Action takes keywords from pyproject.toml, which don't match what is currently used in the citation. Idea was to simplify the args that need to be passed to the action (as specifying loads of keywords gets cumbersome) and this info can be encoded in pyproject.toml.

Codemeta generation

  • Action uses keywords encoded in pyproject.toml rather than requiring these to be passed as args, as well as supported OSs (which can be extracted from the classifier field) and package description. Again, just trying to simplify args by using info already encoded somewhere.

  • Action uses json.dump() to construct codemeta.json rather than manually building this. Ends up fixing some indent and spacing inconsistencies in author names. A cosmetic improvement, but does generate a big diff.

@larsoner

Copy link
Copy Markdown
Member

Those whitespace changes would be okay but in its current form this is a bit tough to review since it just shows a diff... WDYT about putting all of those actions in the autofix.ci job? That way all the proposed changes will actually be committed? I think it's the way we'll probably want to use it in practice anyway, and will facilitate seeing the diffs (e.g., with whitespace changes ommitted or not).

@tsbinns

tsbinns commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

#14133 does change some of the naming / compound surname stuff. Okay for me to merge that one after this one or vice-versa

Sure, happy with either order. Whichever is in a mergeable state first

@larsoner

larsoner commented Aug 7, 2026

Copy link
Copy Markdown
Member

Okay #14133 is in

@tsbinns

tsbinns commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Okay #14133 is in

Added to the compound surnames in .extendec_metadata.yaml, and will open a PR excluding Lumberbot along with the bash shell changes to mne-tools.

@tsbinns

tsbinns commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

mne-tools/mne-tools#42 fixes the conda env availability for the check-qt-action and removes Lumberbot from codemeta and citation files.

@tsbinns

tsbinns commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Comments from latest review round have been addressed. This should be ready to merge!

@larsoner

Copy link
Copy Markdown
Member

I can look at fixing the conflicts here

@tsbinns

tsbinns commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

I can look at fixing the conflicts here

Was easy to pretty much ignore many of the confliting changes from #14140 and let the new autofix jobs handle the rest

@larsoner

Copy link
Copy Markdown
Member

Okay I'm about to push some changes I noticed as well

@larsoner

Copy link
Copy Markdown
Member

We should merge mne-tools/mne-tools#43 first, then I'll push commits here (which will hit the README autoupdate path)

…versions

- ffmpeg =8.1.2 was dropped when environment.yml generation moved to the
  mne-tools action; it works around a conda solver issue (mne-toolsgh-14023)
- pipe the fetched scripts straight into bash, with -fsSL so that an HTTP
  error fails the step; `bash <(curl ...)` would read more nicely but
  process substitution discards curl's exit status, so a 404 exits 0
- setup-uv/checkout versions had drifted from the sibling job
The lockfile is regenerated with `--resolution lowest-direct`, which takes
the highest available transitive versions, so running it on every PR let new
upstream releases rewrite `pylock.ci-old.toml` on unrelated PRs. Gate the job
on `pyproject.toml` (the only input) plus the generated files themselves, so
hand-edits to those still get reverted.
@larsoner

Copy link
Copy Markdown
Member

Okay changes pushed -- making some of the autofix stuff file-dependent is the biggest one, minor stuff to deps. Marking for merge-when-green, thanks in advance @tsbinns !

@larsoner
larsoner enabled auto-merge (squash) August 10, 2026 20:13
@larsoner
larsoner merged commit 0b54496 into mne-tools:main Aug 10, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants